<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>条件渲染</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head>
<style>

</style>

<body>

    <!-- 
     
    -->

    <!-- 准备一个容器 -->
    <div id="app">
        <h1>{{msg}}</h1>

        <!-- 
            v-if指令的值：true/false
                true：表示该元素会被渲染到页面上
                false：表示该元素不会被渲染到页面上（注意：不是修改了css样式，是这个元素压根没有加载）
        -->
        <div v-if="false">{{msg}}</div>
        <div v-if="1===1">{{msg}}</div>

        <br />

        <button @click="counter++">点我加1</button>
        <h3>{{counter}}</h3>

        <div v-if="counter % 2 === 0">偶数</div>
        <!-- 使用v-else/v-else-if可以提高效率 -->
        <!-- 注意：v-if和v-else-if之间不可以存在其他dom元素，及下面的 div不能存在，会报错 -->
        <!-- <div>1</div> -->
        <div v-else-if="counter % 2 === 1">基数</div>


        <hr />
        <!-- 
            v-show指令是通过修改元素的css样式的display属性来达到显示和隐藏的        
            v-if和v-show应如何选择？
                1.如果一个元素在页面上被频繁的隐藏和显示，建议使用v-show，因此使用v-if开销比较大
                2.v-if优点：页面加载速度快，提高了页面的渲染效率
        -->
        <div v-show="false">{{msg}}</div>

        <!-- template标签/元素只是起到占位的作用，不会真正的出现在页面上，也不会影响页面的结构 -->
        <template v-if="counter ===10">
            <input type="text">
            <input type="checkbox">
            <input type="radio">
        </template>

    </div>

    <script>

        const vm = new Vue({
            el: '#app',
            data: {
                msg: '条件渲染',
                counter: 0,
            }
        })
    </script>


</body>


</html>